refactor, added classes