refactor to multi-module project