Trying refactor expression interfaces
Fix tests
Wip semantical