changed architecture to use relays and bases instead of a single class to handle incoming requests and serve the data