refactoring file structure, bringing over contribute prototype
merge with jayden