improved file structure for gem