split into genre web apps. NEEDS REFACTOR.