some improvemetns