abstract and alpha function nonsense is cleaned up