This is kind of breaking all the nice OO stuff that I had :(