separated model and fixes