Used Replace Type Code with State/Strategy