Week two project submission with all the optionals implemented.