add comments, make it work with uppercase