Make track updating functional (and easily extensible too)