restructured to support ideas go plugin