interface that seems a little more sensible to me. Also broke out s/// expression parsing into it's own subroutine.