separate common head and tail in child comparison
optimize clean function a bit
micro optimize some more stuff