Refactored with Link and Project classes