validation fully working now