initial work on the approve-an function
added approveas/denyas functionality
this is just an unbelievable mess.  please refactor this when you have time