further performance improvement