improved teletype method - still a bit hairy, but getting better ; created internal determine_model method