Add recursiveness with fixed circular imports and correct order of files