implement streaming decoder, add custom tag support