Convert tracker to use promises