saving callbacks instead of calling on assign