1. An apparatus comprising: a reception unit configured to receive selection of a function; and a determination unit configured to determine whether to perform hardware processing or software processing on the function based on a free space in a storage unit configured to store hardware information related to the hardware processing on the function and a processing time required for executing the function; and an adding unit configured to add the function to a function list, wherein the determination unit is configured to determine a priority of the function in the function list based on the processing time required for executing the function, and determine whether to perform the hardware processing or the software processing on the function, based on the determined priority of the function and the free space in the storage unit, wherein at least one of the reception unit, the determination unit and the adding unit, is implemented by a processor.