added content and preprocessing