#15 - implement new api