Redesign with ddd