fix var names, longer callback, always defined