all of the core functions are now fleshed out