add sample_weight support for fit