OptionalT bind
refining OptionalT bind
logger in StateT