Broke up execute() method for better testing, implemented DI pattern.