Feedback added, redesigned.