Eliminate redundancy
Revert "Eliminate redundancy"

This reverts commit 14bd1fd67dd261dc1e70687d00797e5115a1c1e7.
Fixed abstraction
Fixed conditionals
Added unknown program option functionality
Message changed
Merge remote-tracking branch 'origin/develop-experiments' into develop