working model with basic feature