Improved abstraction Fixed failing tests after refactor
Improved abstraction
Improved prompts, guard against overengineering and flag that as an antipattern