trait: replace struct for data type