function should be receiver