Finished just in time for the Simap challenge.