Finished. Working. Didn't implement the optionl part of the project.