interface (kind of)