Add option to use callable instead of sprintf pattern
Add documentation