new module for generic algorithms