localize import to avoid circular import