add various modules for the new architecture including writer and reader subpackage