add features to functions