implement remaining tests