use varargs for request method options handler instead of string array
refactor and clean up the router
refactor and add Content-Length header to all responses