decouple final step from the rest and clean up