modularize dependencies