create unit tests and refactor ArgumentCollection to namespace