last commit before class, there are still some comments/TODOs for later