changed so that its *actually working with costly pos eval