add abstraction of request handling
add an example