(this contains new features, however the function names and usage examples may not be fully settled)

indeed what's in master is tested