finished abstracting and refactoring parameter handling into parent class.