more updates, please refer to README file