own validations, wish I mede it too hard