bug $(this) fixed
final each is unnecessary
better callbacks