problem 1. slight improments.