refactor of openbibl/browse code to separate view/model concerns