finished basic methods