Backend for section 4, and the beginning of a frontend.