refactored and gave birth to a singleton