class Driver implements Wrapper {

	@Override public Handler wrap(final Handler handler) {
		return request -> specs(request).orElseGet(() ->
				handler.handle(request.map(this::before)).map(this::after)
		);
	}

	public  Driver(final Shape shape);

}