added comments to show oo design patterns