various code very usefull