Refactor for more granularity, clarity and control