move add logic to init