- add beta function abstraction