modified beltup to return a new object, instead of modifying the passed element