Pros and cons of the branch design pattern