I think all of the methods below this one should be `protected`, right?