it's nice to have open source implementations so you can extend / borrow / merge / morph features and ideas into something else