this doc string is a little misleading given that it takes 3 arguments