a massive restructuring/rewrite
merged
patched @mmichaud93's code to use logoicon instead of unknown