Abstract messages away with the help of gen_server