always the interface thing