adding functions for eval and apply