public methods before protected