restructure the gdm.
use package to divide the function of classes.

Signed-off-by: Samuel Deng <mr.dengshuoling@gmail.com>
Merge branch 'develop'