added functionalatomic class