core is modularized for gwt reuse