replace it with a faster impl