i really don't mind using eval for this