implemented basic methods