reorganize project folder and add testing framework