Move custom views into their own classes