added Tab.js with default scaling and ability to customize layout