progress on exception safe implementation
more initial implementation work