don't depend on private methods (#3)