some design improvements