Generalised version. Check init-commit für usage example