writes properly, still some bugs in some observations