Abstract factory improved
AbstractModel improvement and testing