Add validation, some fix and improvment