readded test and benchmark