needs more styling, js, and db