Shuffles lib organization, adds interfaces