improved binding API