split the sift3 into three different methods

Split sift3 method into three different methods.