splits the constructor factory in more classes [Sugestion]

Split the Abstract factory in classes, it doesn't impact in performance.
Just get the code cleaner.