Major refactor adding separate contributor class and authentication