organize the code, update readme