added semantics and responsiveness. ready to reactify.