added some new classes to demonstrate the use of factory methods and bean scoping