Design patterns: the beginning