[feature] made handle to be passed as a value in order to minimize the memory allocation/deallocation overhead