add foundemental function