add builtin strings
move struct Implementation to namespace
class Spec not inline
use custom string pool