several improvements