** Motivation for the question: **

I have a standard working knowledge of sheaves. Given a scheme, a coherent module over its structure sheaf and a few hours I can compute things. Despite this I have always been unsure how to prove that the category of sheaves has all the properties which I know about.

Whenever I try and prove foundational results about sheaves, I end up producing circular arguments. The reason this happens is because for me, it is impossible to think about sheaves without my intuition kicking in. This is great for geometry, but not so great when I am trying to explain why you can check exactness at a local or stalk level to someone who is just starting Hartshorne. I always end up saying "it's just true!" or "its a standard exercise" which is never a good thing in mathematics.

I suspect the issue is that I don't really know how to prove that sheaves of abelian groups form an abelian category (at least i got stuck trying to do this).

Question:I have always struggled proving that sheaves of abelian groups form an abelian category. Is there a slick way to do this? I am not afraid of category theory.