refactored project extraction