only check.go left untested now