Refactoring: Move touch logic to separate file
Some fixes to shining