Contracts look promising. I'll remove this stuff for now and we can consider using code contracts properly.