Using class rather than ids for components  Issue #279
Encapsulate css and cleanup Issue #278