adds validation to create instance and returns instance result. needs to be tested