Moved validation to models