merge with hibernate branch