add model polymorphism
add missing mode files