aget, aput refactored