supporting writing arbitrary data
resolved #1 (closed), #4 (closed), #7 (closed), #9 (closed)
- added DataParams to support arbitrary data writing(array, array + scalar)
- removed template implementation
- code refactoring on multiple classes
- more unit tests added