This code is based on the project "Design Pattern Explained Simply". This is just for learning purpose.