Switched to using expression implemented in Lang to avoid eval

***This is not ready for a merge just yet***

this change means that expressions such as 'thing == bob' will fail, as the new code expects 'thing == "bob"'

Which syntax is preferable?

Both are achievable.