fix subtle bugs