add some comments

Signed-off-by: Curno <lyf.curno@gmail.com>
add visual objects

Signed-off-by: Curno <lyf.curno@gmail.com>
Use smart pointer instead of buildin pointer

Signed-off-by: Curno <lyf.curno@gmail.com>