Updated submission with demo code, final version. Thanks all.