safe init with default values
add logging features