redesign & debug