Shift to lib-like functional