major refactor and plist generation