use constructor initializer list

Change-Id: Ieede6dec05f63ed0fa1dde376b2e89c381601cd6
prefer ptr_container to manual memory management

Change-Id: I11326c2873aad5116fd70bfa31eb94e93fef3f40
add some warnings to non-implemented features

Change-Id: Icbd1a46dc426a0527422d55f77e67eac755bbc8b