modify API, support transpose