done with perl hashes