break these out into server and handler files for clarity