put back with nice improvements from Constantine