Pushing Design patterns assignment