refactorings
use state pattern for id3v2 parser