adding comments and renaming New* func