generalize adapton & lazynoninc interface