fix some bad design.