added argue and typed