+ Refactoring (merging of FileAction and FileContext)
+ Link state pattern to event aggregation/ state switching