Added initial implementation of take_by_pointer