These types are getting a bit too verbose. What about we use type aliases to make them more readable?