qnq:This has gone through a whole lot of changes since I originally posted, so I wanted to throw t