View is separated from logic