finalized design need to finish the JS