Since this is a work in progress, let me know if you guys find any bugs and I will work to squish them.