another implementation added - still slow