simply appendChild in reverse to avoid losing event listeners