added validations, I don't think they're working properly yet