add alpha implementation