move manipulation in callback