interactive
rework API