with advance method