add universal decoder and functions and such