cleanup part 1
cleanup part 2
cleanup part 3
cleanup part 4