slightly more adapter pattern. resource files still weird though