refractor model constructor