actually require length for hackId
Upgrade angular-ui-router
Let the hack.doc state work without docId