added remaining tests and implementations