clean up
overriding some read/write methods
specialize BlockVec to pointers