major update and fix