Option interfaces, Action Composition
Added some unit tests
Updated solution