type inference and implicit return