Made several internal improvements and added a color selection feature