Major redesign and improvement.

Still need to update README...