@kde yikes, that's a lot of code :P