Updated with annotation based initializer