working on language implementation