structuring proposer class