maybe i can borrow some code in [cotton](https://github.com/danielhuang/cotton)
maybe i can borrow some code in cotton