implemented text read/write for shapes

still need to do binary