Add better docs, safer callback in resources.json/client