some design bugs were fixed