initializor changed to create if not exists