Refactor Crumb model for reusability