A new State, interface instead of abstract class