even better argkey types handling