http://blogs.unity3d.com/2014/05/16/custom-operator-should-we-keep-it/