updates and bug fixed