refactor validation, improve interp