Raising exception on factory! and precedence!