Factor module across several modules