Issue #16 - Combine and clean when parts exist

* Extract the way of listing parts to a private function
* Use that function to count the parts and for cleanup