refactored to make the client work the way that it probably should
refactored to make single view factory work as it should, multi is almost certainly broke now