seperated evaluate