Add better support for expressions & improve tests