big refactor, changed everything to classes. Code is a lot cleaner now