Return specific types in By factory methods

Let clients refer to them by their interface (as they should).