added dictionary functionality and other