base analysis on a parser function instead of just an attribute string (also gets rid of the reference to window.Smooth)