reduced re-used code