cleaned up the horrible hierarchy and added more candy generation