basic parser implemented, working on understanding monads