Added strategy and builder patterns