added state frame type

broke frame types into separate defs