we need to do like callback && callback() or something, just incase its not supplied.