wip better approach to exceptions