Refactored it a little bit for for other syntax
Added support for comparison: between
Added more indirection for more abstraction