new design, fixed bugs