better handling for nil data
remove temporary unused t.fd
allow empty fd or mqd on create
allow empty fd or mqd on create - but make invalid fd not 0
add tests that allocates all types to improve coverage