ok, the interface itself