Refactored to use a package level struct for all operations. Test now uses convey package API.