refactoring into proper subviews and trying to figure out consistent render logic on server and client