more performance imporvements