fixes #4: more powerfull parser