added several functions