Since init method of UIView is calling initWithFrame method, calling sharedSetup from init is redundant and can cause observers to be added twice, which will cause bug.