separate validation