Final project solution