put op first approach