Added function type inference