Complete redesign of classes