be consistent about returning callbacks