Added some methods and removal of the self factory pattern.