removing the use of eval