better event handling, new css and js helpers