change signature to return element