add 'safe submodule; change internal lists to vectors