make this method simplier. find the right place for validation. and think about removing those conditions.