Update documentation
Improve traits
Improve traits replacing templates by function constraints; remove assign overloading