add circular dependency test
add module caching test