Extract factory responsabilities