nvm refactor later. finish dropbox implementation first