Clean up, making more use of composition