use static object to implement singleton