generate files instead of hardcoding them