removing this decltype because clang doesn't like it