Added many comments and a view interface