Added the numeric function and reworked the structure.