add a convenience wrapper for the hal, the middleware and the image