added non macro based implementation of request/respond