all this could be a good idea but probably belong to another patch