restructured API