private and static method