Added data classes
Added factories and recursive import