Stable changes

New interfaces created, modification respecting the solid principles
done.
Ready for prod version.