refined the model and added some helper find methods