move area functions to separate file
add dirac function