drawing without replacement
fix: cast to int selects floor, so last color was never picked
added some colors
optimized some defaults
added extended metadata to support default instances