design patterns  added