+ handle completion more generally