use delegate() instead of change()
hide privates