redo stuff trying to figure out best approach