design patterns for version2 and start of version3
version3
version3 updated
fixed conflicts