better solution for circular imports