staticmethod does not require self param