changed the construction method name from factory to instance to better fit singleton pattern