Major refactoring work and implementation of expanded Research Questions. Work for openpprn/opn#59 and openpprn/opn#7