completed basic methods