A balanced motor primitive framework can simultaneously explain motor learning in unimanual and bimanual movements