Use static member functions instead of static members for avoid static initialization order fiasco