multiple changes, a few added features