parse expressions
start refactoring