csharp immediate and deferred custom actions with different key reading methods
fork another custom action project for the final touches