hmm. why do we have to check if it's empty first? can't we do an idempotent append to the methods datastructure?