added before events- still need to add logic to run them