add function, small interface