implemented dictionary, finally