Added more functionality and split methods into multiple files to increase readability
Added TODO.md