loop argument management
type management