Fully working proof of concept. Still more to do...