add view module and some small improvements