append returns a new elem, does not take one