refactoring Callout component