lots of style and backend changes