Callback type added
Visibility code refactored