use static construction method