added deep method