implements some override methods