Restruct with oop