wrote until return type deduction