add write page option
implement write buffering