initial implementation of ffl::weak_ptr