shouldn't this use explicit arguments?