Redesign states and implement generated control_name