Similar to ActiveRecord, users must spec the client