refactored project tructure*