following "create your own framework" series by Fabien Potencier