Added AbstractState class