add almost all callbacks