Fix bug in recolor form by redoing it and making it more DRY