implementation redesigned