Thanks everyone for the help! It seems like there are quite a few strong solutions to try out. Awesome! I will be working on this tonight and tomorrow, so I'll post here what has happened.

This forum is now directly contributing to the scientific computing community