more comments and better matching
done for now but need to add tests