implemented return