final working version of the project