includes singleton pattern