Separate public and private functions