I think this helper methods are not very helpful. Why are they `protected`?