fork and some changes. read changelog.md