It was quite fun :P
I have a question though... Why do eval and exec need to be disabled? I can't think of a way they could be used to circumvent the evaluation and minimize the source code.