support empty transactions