much less javascript