simpler interface, refactor