+ Some refactoring in generics, module interfaces, and the use of the
queue for results