Implementing close functionality.
Preventing events raising if data hasn't changed.
Just close if value hasn't changed.