Added custom ToDo class and refactored a ton of code