Improve how struct works