Add recursiveness with fixed circular imports and correct order of files

See #102 and #109