shifting functionality, api tweaks again