Modularized the interfaces