initial implementation of parser