lots of TODOs... layout our functions