refactored to multi project architecture