hooks and transforms