wrapper and somethings modified