finish type_traits and memory functions