major redesign. Added semantic and knockout code.