without view and correct struct