I love this! I had an idea for something similar but your implementation is much better than anything I could come up with!