design pattern practice
 merge?