add path-based request handling, renamed a few files, added AbstractRequest base class for requests for dynamic request class determination