must return output