Implemented simple and dirty abstraction
Important: resulting model is inclined to fail update_references function call!