An adventure is php programming following the SOLID design principals