Clean up and final version