lots of API calls. too many. must fix