add several functions