why isn't this a subprocess like bower?