s a function) and provides a set of methods for impl