refs #19.  optimize the implement.