updating dependencies
minor refactor
improving test coverage