Final version of the project. Added additional functionality