refactoring and started on expression parsing