Cleaning up and extending ...