bunch of updates to core functionality