Basic middleware and configurable runners