change BaseAnimation from Class to Protocol, various minor updates