start refactoring everything into objects