feat: add gatherer, update storage, update view