validation and user interface semi working