Software design patterns Packages