models implemented