Rewritten to use eval() (slow)