Experiment for creating a full generic middleware