Renamed `props` to `propOf`, reimplemented `props` as multiple `prop`

Closes #499.
am i the only one that hates `for` loops? not necessary to change it, since it may be just my preference