remove some functions
reclassification namespaces
add optional