FormBehavior refactor (incomplete)