UI: extract the progress bar out into its own component
UI: extract canvas lamps into their own component