Mostly works. Final project