rename modules; implement trainer