initial commit by restructing graphx