refactored storage and history, color will be trickier