added take method
changed response to require the serialized tuple
few name changes
added if exists