Finished initial refactor - added classes