Frontend overhaul

Merge new frontend with master, for better desktop and mobile functionality.