fix habtm pivot method, add validate method