Gonio shared_ptr removal
The abuse of shared ptr
throughout the code led to a loss of control over the objects ownership. When possible the shared ptr
has to be replaced by unique_ptr
or plain objects with appropriate getters to their underlying resource.