added extra abstraction to member?