implemented State interface