with doc strings