final version of everything (probably)