Here's the demo! It may be buggy! It may be unpolished! It may have a few unfinished things (marked with Xs)! But it works! The key is in the screenshot!