add more operating modes (closes #3)