Separating and Managing Dependent Concerns Separating Statechart Implementations from Base Code in an Embedded System