circular dependencies on modules are lots of fun