accept non pointer values as parameters to State::on and Vertex::to