re-arranged module structure