You are surrounded by a horribly implemented functionality made up of multiple files of hundreds of lines each that barely crawls while doing its job.
Back-end looks innocent with only a couple calls but it absolutely stinks from the amount of workarounds that the current architecture didn't account for and the repetitive boiler-plate code for each entity in it.
Your task is to refactor this beast while keeping all its functionality intact. How would you tackle this monster?
(a.k.a. What are the more generic steps you use while refactoring?)