refactor ErrorView into MessageView