solving some design issues