change design patterns perface