Need/Drive rework; JUnit tests added