reorganised interfaces for algorithms