refactor Input controller, use Action default of C# instead of Runnable