Removed useless methods. code is much more dry. add tons of comments and simplified many things