clean slate
reimplemented Util