added validation and more language options