should be static method