added change handlers to components