refactored project some more