Support and prefer keyword arguments

Documentation also improved and added some missing test coverage