more corrections thanks to examples from the factory