can push any size to buffer (returns num pushed)