Much doc added + some define