further imporvements to speed