add most base functions