- implement the behavior classes
- move open/save into the backend