corrections, improvements added type free