some design modifications