Separate interface from realization.