factory pattern with abstract and static examples and overloaded methods
factory pattern with abstract and static examples and overloaded methods