fnc : make some function private and change way to handle type3
views : merge with champ function