adding a $ convenience, a simple factory, more docs
use tildes instead to enclose code