improve transfer interface