+ action and action state refactoring (abstract class instead of interface)
+ action state has access to action, execution method gets file manager
+ testing class
+ file manager (stub implementation)