remove requirement and option single function