Renamed files
Renamed core to Viewer and changed to singleton design pattern
Modified spec