Add basic working implementation
Add a demo to illustrate usage