[WIP] add Modifier interface
[WIP] use bytes.Buffer
[WIP] slightly changes
[WIP] slightly changes
[WIP] optimized (remove bytes.Buffer)