add color chooser and clean code