#141 impl
#143 impl (partial c1)
#144 impl (c1) & fix submodule paths
#147 impl
#146 impl & add missing files