class IntentRequestHandler implements RequestHandler {

    @Override
    public Optional<Response> handle(HandlerInput input) {
        try {
            return handle(input, intentReader.read((IntentRequest) input.getRequestEnvelope().getRequest()));
        } catch (IntentParseException ex) {
            String msg = String.format("Failed to read a '%s' from intent request", intentClass.getName());
            logger.error(msg);
            throw new RuntimeException(msg, ex);
        }
    }

    public  IntentRequestHandler(Class<T> intentClass, IntentMapper intentMapper);
    public  IntentRequestHandler(Class<T> intentClass, IntentReader<T> intentReader);

}