wip
rewrite features as funcs
need to finish Repo.calculate