Closes #1 Supports null callbacks