resolve some design bugs