optimize and add some model logic