implement rename
handle IO::Handle
get_data and get_handle implementation
extract method
type detection