completed common.h