Design pattern changed. Test File added.