Implement the basic structure