Renamed none to empty
Removed the possible exception from Consumer's apply.
Moved Consumer into the function package