Move login to SpotApi where it belongs.
Make sure track details are loaded before using them.
Load state if it exists
And save state when we change it.