unit testing and initial refactoring to start making ExperimentalFactors interface more fluent and testable
removed Iterable interface after thinking twice on it