pass in completion type