add additional base functions