revamp state types