work in progress, advanced API design