major redesign + minor fixes