Better structure and documentation