recursive modules and dependencies