Use traits for reusability