refactor static methods