updated with new tests and refactor package naming