validation tested, working properly