utils::TouchLayer refactored