Lingering foundational question about sheaves of abelian groups  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.

 A: I take it you mean sheaves on topological spaces.  I think it is valuable to grasp both of two approaches.  One (which works essentially the same way for sheaves on sites) is to first see that presheaves of Abelian groups have biproducts, kernels, and cokernels trivially by naturality; and then see by adjointness that sheafification of presheaf coproducts and cokernels gives coproducts and cokernels of sheaves of groups.  
The other way is to think of sheaves on a topological space as local homeomorphisms from espaces etales, verify that products and kernels are defined very simply and that products also have the coproduct property (inherited from Abelian groups pointwise) and that cokernels are defined by a relatively simple local criterion.
Maybe I am missing what your problem is, though.  Can you point to a part of these steps that gives you trouble?
A: Ok, I know I should have done this before I asked the question, but I had a dig through the stacks project. It seems like http://stacks.math.columbia.edu/tag/03A3 is exactly what I am looking for.
