more compression, add function signature