OVERHAUL. Now at ver 3.0.1