split unittests into multiple files and added run_tests.py to run them all