Separate generator from core api
Add gutter-width & external-gutter on component apis
Use component APIs for the classes generator