adding more client side styling, model abstractions, and stat