Add public and private functionality with specs