Redesign and a few fixes