refs #2, #3. spec for generic interface is done.