added parser
refactoring
added solver and behaviour tests