various changes; too many changes to enumerate