same-step optimisation implemented