interface: works