custom Reader&InputFormat&Writable