extending function traits