implements some missing things