reworked handler with bodies