much updating of unittests, and rearranging of files
much updating of unittests, and rearranging of files