added basic design for execution. we need to refine ->process() to receive a flexible workload including a request and ways to return the result