Receive either plain or rich input #7

Eh, it was basically done.  I'm just putting this up here - if we'd rather go with 2 parameters as @itamarst suggested, we could modify this or just close this one and open a new one.

~~Note that this is based on #15, so if that gets merged this diff will be shorter.~~ Update: #15 has been merged, this has been rebased.

Fixes #7