message constructor is required
message subclasses should make specific instances of url requests