implements public methods