the so-called more efficient method, cannot figure it out, todo