Refactored project, prepared for further development