added more model implementation