Pack generalisation
tweaks
regroup code