Working but messy implementation of symbol extension