Refactor Spinna::Client and add tests