request class (incomplete)