add getPartitionKey(), fix some bugs