function/customiser refactoring