Working demo of the full thing, some features still remain to be added.