preserve types decorators as well
make the wrapped otional's name be optional