cleaning blocks to avoid leaks, exception safe
removed typedefs
removed explicit Optional<>
cleansed init and access specifiers
added attempt with a return value