self transaction