use prelude's hook