I'll implement this today.
Edit: I've implemented this! It's a lot of code changes so I hope I didn't break anything.