add function and others