update Readme and restructure the testing code