move file under namespace, fix CS, use exceptions instead of die
continue refactoring, provide version num