Modify super model function to become more flexible