refactor Input.Internal into more specific modules