extended by Scott Doner
_