added evaluation loop