better object composition re: input models