use namespace for state class implementations