chore: explicit deps (not through pipe)