20: take this as far as possible without serious changes for kwargs