Refactored the whole expression building process so that we can have context access when we need to look up variables.