first updates for type inference