removed manual type infer, compiler will make it anyway