huge paper refactor
merge after paper refactor