add ReproductionAction, flesh out some methods, add more comments