Cleaning

This needs a lot of cleaning but it gets the job done.