added user based callbacks