redisigning to OOD