improve upgrade behavior; add colorize