don't use streams, need to append