Validation and adding NIO. Still has bit of validation left