impl: design changes