Revamp all the thing base on @cvrebert comment