Implement the general structure.