efficient generation of subroutines via string eval