controller: split modules

Signed-off-by: Young-Ho Cha <ganadist@gmail.com>