complete basic clean logic