Many changes (features, fixes, cleanup)