better class hierarchy, TODO represent acitons and states