why static instead of self::SERVICE_PATTERN just curious