Playing around with some changes to make this better fit our application.
Still undecided if this is the class to go with.