Layer based version with CABasicAnimation