improve callback gui engine