added self return for and_return