refactor and completed JEXL