added empty() and getDataBytes()