list tests
writer tests
added state monad