Mainly add documentations on methods defined in core.py