using auto for type inference