TODO: make things easier with requests