split Mean into several types as it really does not do the same thing