Need code review/design suggestion