massive refactor done
todo list