added html components and refactored unit tests