works with simpler interface
validating in/out's