making it uniform
optimization
Modifying data structure to add support for new mechanism
Important bug fix
optimization and bug fix