Added some documentation, expanded todo, a lot