many small improvemetns