use scoped pointer w/o manual releasing
unify used method names
rename class for clarity
add compiler flags for publicly exported methods