enum + switch case | learned to map